import geopandas as gpd
import contextily as ctx
import pandas as pd
import matplotlib.pyplot as plt
from functions import *
As mentioned in the introduction, the Dolomites are spread over several Italian regions, and consequently Italian provinces and municipalities. What are these regions, provinces and municipalities? And which of them contains the majority of the peaks? In this notebook we will build three ranking list indicating the percentage of the Dolomites contained in regions, provinces and municipalities involved in the area.
First, it is essential to import Dolomiti's data (remember that we save it in csv format).
df_dolomities = pd.read_csv('data\df_dolomities.csv')
df_dolomities.head(4)
| Name | Description | geometry | area | centroids | |
|---|---|---|---|---|---|
| 0 | Sistema 1 - Pelmo, Croda da Lago | Esplora il Sistema 1 Pelmo, Croda da Lago su<b... | POLYGON Z ((12.121421 46.404879 0, 12.121488 4... | 4.315303e+07 | POINT (739351.9373813267 5148262.480977141) |
| 1 | Sistema 2 - Marmolada | Esplora il Sistema 2 Marmolada su<br>http://ww... | POLYGON Z ((11.823194 46.452963 0, 11.822142 4... | 2.205786e+07 | POINT (719424.1649959779 5145963.68184033) |
| 2 | Sistema 3 - Pale di San Martino, San Lucano, D... | Esplora il Sistema 3 Pale di San Martino, San ... | POLYGON Z ((11.98683 46.317204 0, 11.988004 46... | 3.165677e+08 | POINT (730679.3390335406 5125674.431470685) |
| 3 | Sistema 4 - Dolomiti friulane e d'Oltre Piave | Esplora il Sistema 4 Dolomiti friulane e d'Olt... | POLYGON Z ((12.512045 46.424872 0, 12.512 46.4... | 2.146157e+08 | POINT (769747.0350640987 5138937.349145058) |
type(df_dolomities)
pandas.core.frame.DataFrame
Build the GeoDataFrame from the DataFrame using geopandas' GeoDataFrame():
# retrieve geometry with geopandas' GeoSeries.from_wkt()
geometry = gpd.GeoSeries.from_wkt(df_dolomities['geometry'])
geodf_dolomities = gpd.GeoDataFrame(df_dolomities, geometry=geometry, crs="EPSG:4326")
geodf_dolomities.head(4)
| Name | Description | geometry | area | centroids | |
|---|---|---|---|---|---|
| 0 | Sistema 1 - Pelmo, Croda da Lago | Esplora il Sistema 1 Pelmo, Croda da Lago su<b... | POLYGON Z ((12.12142 46.40488 0.00000, 12.1214... | 4.315303e+07 | POINT (739351.9373813267 5148262.480977141) |
| 1 | Sistema 2 - Marmolada | Esplora il Sistema 2 Marmolada su<br>http://ww... | POLYGON Z ((11.82319 46.45296 0.00000, 11.8221... | 2.205786e+07 | POINT (719424.1649959779 5145963.68184033) |
| 2 | Sistema 3 - Pale di San Martino, San Lucano, D... | Esplora il Sistema 3 Pale di San Martino, San ... | POLYGON Z ((11.98683 46.31720 0.00000, 11.9880... | 3.165677e+08 | POINT (730679.3390335406 5125674.431470685) |
| 3 | Sistema 4 - Dolomiti friulane e d'Oltre Piave | Esplora il Sistema 4 Dolomiti friulane e d'Olt... | POLYGON Z ((12.51205 46.42487 0.00000, 12.5120... | 2.146157e+08 | POINT (769747.0350640987 5138937.349145058) |
type(geodf_dolomities)
geopandas.geodataframe.GeoDataFrame
We can also load the GeoDataFrame using a costum function from functions.py:
geodf_dolomities = load_geodf_dolomities('data\I nove Sistemi delle Dolomiti UNESCO.kml')
download_extract('data\Limiti01012021_g', 'https://www.istat.it/storage/cartografia/confini_amministrativi/generalizzati/Limiti01012021_g.zip')
regions_path = "data\Limiti01012021_g\Reg01012021_g"
regions = gpd.read_file(regions_path)
regions = regions.to_crs(epsg=4326)[['COD_REG', 'DEN_REG', 'Shape_Area', 'geometry']]
provinces_path = "data\Limiti01012021_g\ProvCM01012021_g"
provinces = gpd.read_file(provinces_path)
provinces = provinces.to_crs(epsg=4326)[['COD_REG', 'COD_PROV', 'DEN_PROV', 'Shape_Area', 'geometry']]
# join data about province with the data about the region they belong to
prov_reg = gpd.sjoin(provinces, regions, how='left', predicate='within', lsuffix='', rsuffix='reg')
municipalities_path = "data\Limiti01012021_g\Com01012021_g"
municipalities = gpd.read_file(municipalities_path)
municipalities = municipalities.to_crs(epsg=4326)[['COD_REG', 'COD_PROV', 'PRO_COM_T', 'COMUNE', 'Shape_Area', 'geometry']]
# join data about minicipalities with the data about the province and region they belong to
prov_reg_mun = gpd.sjoin(municipalities, prov_reg, how='left', predicate='within', lsuffix='', rsuffix='prov')
We ues spatial join with intersect predicate in order to join data about Dolomiti systems and regions and provinces.
geodf_dolomities_provices = gpd.sjoin(geodf_dolomities, prov_reg, how='left', predicate='intersects', lsuffix='dolomities', rsuffix='provinces')
geodf_dolomities_provices = geodf_dolomities_provices[['Name', 'Description', 'geometry', 'area', 'COD_REG_', 'COD_PROV', 'DEN_PROV', 'Shape_Area_', 'DEN_REG', 'Shape_Area_reg']]
geodf_dolomities_provices.head(4)
| Name | Description | geometry | area | COD_REG_ | COD_PROV | DEN_PROV | Shape_Area_ | DEN_REG | Shape_Area_reg | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Sistema 1 - Pelmo, Croda da Lago | Esplora il Sistema 1 Pelmo, Croda da Lago su<b... | POLYGON Z ((12.12142 46.40488 0.00000, 12.1214... | 4.315303e+07 | 5 | 25 | Belluno | 3.609841e+09 | Veneto | 1.834355e+10 |
| 1 | Sistema 2 - Marmolada | Esplora il Sistema 2 Marmolada su<br>http://ww... | POLYGON Z ((11.82319 46.45296 0.00000, 11.8221... | 2.205786e+07 | 5 | 25 | Belluno | 3.609841e+09 | Veneto | 1.834355e+10 |
| 1 | Sistema 2 - Marmolada | Esplora il Sistema 2 Marmolada su<br>http://ww... | POLYGON Z ((11.82319 46.45296 0.00000, 11.8221... | 2.205786e+07 | 4 | 22 | Trento | 6.208170e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 2 | Sistema 3 - Pale di San Martino, San Lucano, D... | Esplora il Sistema 3 Pale di San Martino, San ... | POLYGON Z ((11.98683 46.31720 0.00000, 11.9880... | 3.165677e+08 | 5 | 25 | Belluno | 3.609841e+09 | Veneto | 1.834355e+10 |
Now we have a DataFrame with systems and the regions/provinces containing them.
E.g. Sistema 2 - Marmolada is contained in both Veneto and Trentino Alto Adige, in particular between province of Belluno (Venento) and province of Trento ( Trentino Alto Adige).
We first extract the Dolomiti's regions' name from the previous data:
dolomiti_regions = geodf_dolomities_provices.DEN_REG.unique()
geo_dolomiti_regions = regions[regions.DEN_REG.isin(dolomiti_regions)]
print("Dolomiti regions: ")
for i in geo_dolomiti_regions.DEN_REG.unique():
print("-", i, end="\n")
Dolomiti regions: - Trentino-Alto Adige - Veneto - Friuli Venezia Giulia
Plot data on overall Italian terriroty:
base = regions.to_crs(epsg=4326).plot(
column='DEN_REG',
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, crs=geo_dolomiti_regions.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
geodf_dolomities.plot(
column='Name',
ax=base,
edgecolor="k",
alpha=0.75,
lw=0.1
)
<AxesSubplot:>
Let's zoom over the regions that contain Dolomiti:
representative_points_region = representative_points_for_labels(geo_dolomiti_regions, 'DEN_REG')
representative_points_region
| index | geometry | names | |
|---|---|---|---|
| 0 | 3 | POINT (11.22145 46.38468) | Trentino-Alto Adige |
| 1 | 4 | POINT (12.09621 45.73561) | Veneto |
| 2 | 5 | POINT (13.04718 46.11426) | Friuli Venezia Giulia |
Plot the zoomed map with the regions name labels:
texts = []
base = geo_dolomiti_regions.to_crs(epsg=4326).plot(
column='DEN_REG',
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.6,
alpha=0.7
)
ctx.add_basemap(base, crs=geo_dolomiti_regions.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
geodf_dolomities.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.75,
lw=0.1
)
for x, y, label in zip(representative_points_region.to_crs(epsg=4326).geometry.x, representative_points_region.to_crs(epsg=4326).geometry.y, representative_points_region["names"]):
texts.append(plt.text(x, y, label, fontsize = 14, color="#393e41", fontweight='regular', fontfamily='sans-serif', horizontalalignment='center'))
list_reg = []
list_dol_area = []
list_dol_percentage = []
for i in geo_dolomiti_regions.DEN_REG.unique():
temp = regions_systems_percentage(i, geodf_dolomities)
list_reg.append(temp[0])
list_dol_area.append(temp[1])
list_dol_percentage.append(temp[2])
45.59% of the Dolomiti's peaks is in Trentino-Alto Adige with 646.86 km² 41.2% of the Dolomiti's peaks is in Veneto with 584.6 km² 13.2% of the Dolomiti's peaks is in Friuli Venezia Giulia with 187.35 km²
Save results:
rank_dolomiti_reg = pd.DataFrame(list(zip(list_reg, list_dol_area, list_dol_percentage)),
columns =['region', 'dolomiti_area_km', 'percentage_over_total_dolimiti_area'])
rank_dolomiti_reg
| region | dolomiti_area_km | percentage_over_total_dolimiti_area | |
|---|---|---|---|
| 0 | Trentino-Alto Adige | 646.86 | 45.59 |
| 1 | Veneto | 584.60 | 41.20 |
| 2 | Friuli Venezia Giulia | 187.35 | 13.20 |
The region with the majority of Dolomiti is Trentino-Alto Adige, followed by Veneto and Friuli Venezia Giulia.
As we can see from the previous plots, only few territories of these region effectively contain Dolomiti systems, let's indagate through their provinces.
dolomiti_provinces = geodf_dolomities_provices.DEN_PROV.unique()
geo_dolomiti_provinces = provinces[provinces.DEN_PROV.isin(dolomiti_provinces)]
print("Dolomiti provinces: ")
for i in geo_dolomiti_provinces.DEN_PROV.unique():
print("-", i, end="\n")
Dolomiti provinces: - Bolzano - Trento - Belluno - Udine - Pordenone
Get the provincial capital using the city_coordinates_label custom function:
geo_capoluighi = city_coordinates_label(geo_dolomiti_provinces, 'DEN_PROV')
geo_capoluighi
| geometry | DEN_PROV | |
|---|---|---|
| 0 | POINT (11.35346 46.49528) | Bolzano |
| 1 | POINT (11.11929 46.07005) | Trento |
| 2 | POINT (12.21275 46.14098) | Belluno |
| 3 | POINT (13.23807 46.06452) | Udine |
| 4 | POINT (12.64453 45.96493) | Pordenone |
Plot the Dolomiti systems over their provinces with provincial capitals labels:
base = geo_dolomiti_provinces.to_crs(epsg=4326).plot(
column='DEN_PROV',
categorical=True,
legend=True,
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, crs=geo_dolomiti_provinces.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
geodf_dolomities.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.70,
lw=0.1,
)
for x, y, label in zip(geo_capoluighi.to_crs(epsg=4326).geometry.x, geo_capoluighi.to_crs(epsg=4326).geometry.y, geo_capoluighi['DEN_PROV']):
texts.append(plt.text(x, y, label, fontsize = 12, color="#393e41", fontweight='regular', fontfamily='sans-serif', horizontalalignment='center'))
We have just seen the ranking for the Dolomiti's regions. The following sections will instead determine which provinces and municipalities contain the majority of the territory of the Dolomites.
The province of Trento, together with the province of Bolzano, constitute the region with the higher percentage of Dolomiti's peaks: Trentino Alto-Adige.
Get province GeoDataFrame and plot it:
province_TN = provinces[provinces.DEN_PROV == 'Trento']
province_TN
| COD_REG | COD_PROV | DEN_PROV | Shape_Area | geometry | |
|---|---|---|---|---|---|
| 21 | 4 | 22 | Trento | 6.208170e+09 | POLYGON ((11.82408 46.50408, 11.81545 46.50032... |
province_TN.plot()
<AxesSubplot:>
Extract Dolomiti systems of province of Trento and plot them:
dolomities_TN = geodf_dolomities_provices[geodf_dolomities_provices.DEN_PROV == province_TN.DEN_PROV.values[0]]
dolomities_TN
| Name | Description | geometry | area | COD_REG_ | COD_PROV | DEN_PROV | Shape_Area_ | DEN_REG | Shape_Area_reg | |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Sistema 2 - Marmolada | Esplora il Sistema 2 Marmolada su<br>http://ww... | POLYGON Z ((11.82319 46.45296 0.00000, 11.8221... | 2.205786e+07 | 4 | 22 | Trento | 6.208170e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 2 | Sistema 3 - Pale di San Martino, San Lucano, D... | Esplora il Sistema 3 Pale di San Martino, San ... | POLYGON Z ((11.98683 46.31720 0.00000, 11.9880... | 3.165677e+08 | 4 | 22 | Trento | 6.208170e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 6 | Sistema 7 - Sciliar-Catinaccio, Latemar | Esplora il Sistema 7 Sciliar-Catinaccio, Latem... | POLYGON Z ((11.51976 46.48659 0.00000, 11.5202... | 9.302092e+07 | 4 | 22 | Trento | 6.208170e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 8 | Sistema 9 - Dolomiti di Brenta | Esplora il Sistema 9 Dolomiti di Brenta su<br>... | POLYGON Z ((10.97380 46.24359 0.00000, 10.9735... | 1.113544e+08 | 4 | 22 | Trento | 6.208170e+09 | Trentino-Alto Adige | 1.360755e+10 |
print('province of ', province_TN.DEN_PROV.values[0], ' contains ', len(dolomities_TN.Name.unique()), " Dolomiti systems:", sep="")
for i in dolomities_TN.Name.unique():
print("-", i, end="\n")
province of Trento contains 4 Dolomiti systems: - Sistema 2 - Marmolada - Sistema 3 - Pale di San Martino, San Lucano, Dolomiti Bellunesi, Vette Feltrine - Sistema 7 - Sciliar-Catinaccio, Latemar - Sistema 9 - Dolomiti di Brenta
base = province_TN.to_crs(epsg=4326).plot(
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, zoom=12, crs=province_TN.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
dolomities_TN.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.70,
lw=0.1,
)
<AxesSubplot:>
As we can see from the plot, the province hardly ever contains the whole territory of a system. Using geopandas' clip() we then crop the area of each system on the province boundaries.
dolomities_TN_clipped = dolomities_TN.clip(province_TN)
base = province_TN.to_crs(epsg=4326).plot(
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, zoom=12, crs=province_TN.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
dolomities_TN_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.70,
lw=0.1,
)
<AxesSubplot:>
As a consequence of clipping, it is necessary to recalculate the area of each system:
dolomities_TN_clipped_areas= dolomities_TN_clipped.to_crs(epsg=32632)
dolomities_TN_clipped_areas["area"] = dolomities_TN_clipped_areas['geometry'].area
dolomities_TN_clipped_areas
| Name | Description | geometry | area | COD_REG_ | COD_PROV | DEN_PROV | Shape_Area_ | DEN_REG | Shape_Area_reg | |
|---|---|---|---|---|---|---|---|---|---|---|
| 8 | Sistema 9 - Dolomiti di Brenta | Esplora il Sistema 9 Dolomiti di Brenta su<br>... | POLYGON ((652158.161 5122687.179, 652162.795 5... | 1.113544e+08 | 4 | 22 | Trento | 6.208170e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 2 | Sistema 3 - Pale di San Martino, San Lucano, D... | Esplora il Sistema 3 Pale di San Martino, San ... | MULTIPOLYGON (((725381.201 5115301.937, 725290... | 4.579665e+07 | 4 | 22 | Trento | 6.208170e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 1 | Sistema 2 - Marmolada | Esplora il Sistema 2 Marmolada su<br>http://ww... | POLYGON ((718275.208 5143106.310, 718245.759 5... | 1.148806e+07 | 4 | 22 | Trento | 6.208170e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 6 | Sistema 7 - Sciliar-Catinaccio, Latemar | Esplora il Sistema 7 Sciliar-Catinaccio, Latem... | MULTIPOLYGON (((700185.820 5141183.564, 700337... | 3.898385e+07 | 4 | 22 | Trento | 6.208170e+09 | Trentino-Alto Adige | 1.360755e+10 |
Sum the Dolomiti's areas in Trentino:
dolomiti_TN_area = sum(dolomities_TN_clipped_areas.area)
print(round(dolomiti_TN_area/10**6, 2), " km\u00b2 of Dolomiti are in province of Trento", sep="")
207.62 km² of Dolomiti are in province of Trento
Let's plot the Dolomiti's areas as difference difference overlay, to give an idea of their impact over the province territory.
dolomiti_TN_overlay = province_TN.to_crs(epsg=32632).overlay(dolomities_TN_clipped.to_crs(epsg=32632), how="difference")
base = province_TN.to_crs(epsg=4326).plot(
figsize=(15,15),
color= "white",
edgecolor="k",
lw=0.7,
alpha=0.7
)
dolomiti_TN_overlay.to_crs(epsg=4326).plot(ax=base)
<AxesSubplot:>
It is possible to calculate the proportion of Dolomiti over the province of Trento by getting the Dolomiti's area for the province and dividing it for the whole area of the Dolomiti.
dolomiti_TN_area = sum(dolomities_TN_clipped_areas.area)
overal_dolomiti_area = sum(geodf_dolomities['area'])
persentage_dolomiti_TN = (dolomiti_TN_area/overal_dolomiti_area)*100
print("Province of Trento contains the ", round(persentage_dolomiti_TN, 2), "% of the Dolomiti's terriotory", sep="")
Province of Trento contains the 14.63% of the Dolomiti's terriotory
As mentioned earlier the province hardly ever contains the whole territory of a system, let's see how much system's territory it contains in percentage.
# function to obtain the percentage of each Dolomitic system in the province
def province_systems_percentage(province, system):
# get the province GeoDataFrame
province_geodf = provinces[provinces.DEN_PROV == province]
# get the system GeoDataFrame
system_geodf = geodf_dolomities[geodf_dolomities.Name == system]
# calculate system's area
system_area = geodf_dolomities[geodf_dolomities.Name == system]['area'].values[0]
# clip the system shape on the province boundaries recalculating area
system_area_clipped = system_geodf.to_crs(epsg=32632).clip(province_geodf.to_crs(epsg=32632)).area
# calculate the percentage
percentage_of_system = (system_area_clipped.values[0]/system_area)*100
print(round(percentage_of_system, 2), "% of the", " '",system,"' ", "is in province of ", province, sep="")
for index, row in dolomities_TN.iterrows():
province_systems_percentage(row.DEN_PROV, row.Name)
52.08% of the 'Sistema 2 - Marmolada' is in province of Trento 14.47% of the 'Sistema 3 - Pale di San Martino, San Lucano, Dolomiti Bellunesi, Vette Feltrine' is in province of Trento 41.91% of the 'Sistema 7 - Sciliar-Catinaccio, Latemar' is in province of Trento 100.0% of the 'Sistema 9 - Dolomiti di Brenta' is in province of Trento
As we can see also in the previous plot, the province of Trento contains the whole terriotry of Sistema 9, half of Sistema 2 and other portions of Sistema 3 e Sistema 7.
The province of Trento contains four systems, but these cover only a small part of its territory. Let's find out which municipalities of the province contain Dolomiti's areas.
Using spatial join with intersect predicate.
geodf_dolomities_municipalities = gpd.sjoin(geodf_dolomities, prov_reg_mun, how='left', predicate='intersects', lsuffix='dolomities', rsuffix='mun')
geodf_dolomities_municipalities = geodf_dolomities_municipalities[['Name', 'Description', 'geometry', 'area', 'COD_REG', 'COD_PROV_', 'PRO_COM_T', 'COMUNE', 'Shape_Area', 'DEN_PROV', 'DEN_REG']]
geodf_dolomities_municipalities.head(4)
| Name | Description | geometry | area | COD_REG | COD_PROV_ | PRO_COM_T | COMUNE | Shape_Area | DEN_PROV | DEN_REG | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Sistema 1 - Pelmo, Croda da Lago | Esplora il Sistema 1 Pelmo, Croda da Lago su<b... | POLYGON Z ((12.12142 46.40488 0.00000, 12.1214... | 4.315303e+07 | 5 | 25 | 025073 | Val di Zoldo | 1.414058e+08 | Belluno | Veneto |
| 0 | Sistema 1 - Pelmo, Croda da Lago | Esplora il Sistema 1 Pelmo, Croda da Lago su<b... | POLYGON Z ((12.12142 46.40488 0.00000, 12.1214... | 4.315303e+07 | 5 | 25 | 025069 | Zoppè di Cadore | 4.585119e+06 | Belluno | Veneto |
| 0 | Sistema 1 - Pelmo, Croda da Lago | Esplora il Sistema 1 Pelmo, Croda da Lago su<b... | POLYGON Z ((12.12142 46.40488 0.00000, 12.1214... | 4.315303e+07 | 5 | 25 | 025066 | Vodo Cadore | 4.671745e+07 | Belluno | Veneto |
| 0 | Sistema 1 - Pelmo, Croda da Lago | Esplora il Sistema 1 Pelmo, Croda da Lago su<b... | POLYGON Z ((12.12142 46.40488 0.00000, 12.1214... | 4.315303e+07 | 5 | 25 | 025007 | Borca di Cadore | 2.669519e+07 | Belluno | Veneto |
In this Dataset we have all the municipalities involved in the territory with data on the corresponding province, region and Dolomiti systems.
E.g. Val di Zoldo is a municipality in province of Belluno, in Veneto, and it contains a portion of Sistema 1 - Pelmo, Croda da Lago.
code_TN = province_TN.COD_PROV.values[0]
code_TN
22
municipalities_TN = municipalities[municipalities.COD_PROV == code_TN]
municipalities_TN.head(4)
| COD_REG | COD_PROV | PRO_COM_T | COMUNE | Shape_Area | geometry | |
|---|---|---|---|---|---|---|
| 2871 | 4 | 22 | 022001 | Ala | 1.200270e+08 | POLYGON ((11.00066 45.82692, 11.00103 45.82634... |
| 2872 | 4 | 22 | 022002 | Albiano | 9.804277e+06 | POLYGON ((11.20754 46.15620, 11.20994 46.15454... |
| 2873 | 4 | 22 | 022003 | Aldeno | 9.035749e+06 | POLYGON ((11.10303 45.99093, 11.11333 45.98973... |
| 2874 | 4 | 22 | 022005 | Andalo | 1.141823e+07 | MULTIPOLYGON (((10.95317 46.13797, 10.95315 46... |
municipalities_TN.plot()
<AxesSubplot:>
dolomiti_mun = geodf_dolomities_municipalities.COMUNE.unique()
geo_dolomiti_TN_mun = municipalities_TN[municipalities_TN.COMUNE.isin(dolomiti_mun)]
print("Municipalities in province of Trento that contain Dolomiti: ")
for i in geo_dolomiti_TN_mun.COMUNE.unique():
print("-", i, end="\n")
Municipalities in province of Trento that contain Dolomiti: - Andalo - Campitello di Fassa - Campodenno - Canazei - Cavedago - Imer - Mazzin - Mezzano - Moena - Molveno - Predazzo - Sagron Mis - Soraga di Fassa - Spormaggiore - Sporminore - Stenico - Comano Terme - San Lorenzo Dorsino - Primiero San Martino di Castrozza - Tre Ville - Ville d'Anaunia - San Giovanni di Fassa
Plot these municipalities along with Dolomiti systems:
base = municipalities_TN.plot(
column='COD_PROV',
figsize=(15,15),
cmap="Pastel1",
edgecolor="#413A3B",
lw=0.6,
alpha=0.5)
ctx.add_basemap(base, crs=municipalities_TN.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
geo_dolomiti_TN_mun.to_crs(epsg=4326).plot(
column='COMUNE',
figsize=(15,15),
cmap="Paired",
edgecolor="k",
lw=0.2,
alpha=0.4,
ax=base
)
dolomities_TN_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.85,
lw=1,
)
<AxesSubplot:>
As we can notice, not all shapes seem to touch a Dolomiti system. This is due to the fact that their municipality's geometry is Multipolygon. Let's check this point:
multipoly_mun = geo_dolomiti_TN_mun[geo_dolomiti_TN_mun.geometry.geom_type == 'MultiPolygon']
multipoly_mun
| COD_REG | COD_PROV | PRO_COM_T | COMUNE | Shape_Area | geometry | |
|---|---|---|---|---|---|---|
| 2874 | 4 | 22 | 022005 | Andalo | 1.141823e+07 | MULTIPOLYGON (((10.95317 46.13797, 10.95315 46... |
| 2929 | 4 | 22 | 022097 | Imer | 2.782916e+07 | MULTIPOLYGON (((11.79596 46.15639, 11.79899 46... |
| 2983 | 4 | 22 | 022176 | Soraga di Fassa | 2.021369e+07 | MULTIPOLYGON (((11.69002 46.39827, 11.69068 46... |
| 2988 | 4 | 22 | 022182 | Stenico | 4.929662e+07 | MULTIPOLYGON (((10.84194 46.11319, 10.84293 46... |
| 3010 | 4 | 22 | 022228 | Comano Terme | 6.778564e+07 | MULTIPOLYGON (((10.91873 46.06429, 10.91921 46... |
| 3029 | 4 | 22 | 022247 | Tre Ville | 8.258386e+07 | MULTIPOLYGON (((10.78454 46.08734, 10.78580 46... |
Plot Multiplygon Dolomiti's municipalities:
base = municipalities_TN.plot(
column='COD_PROV',
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.5)
ctx.add_basemap(base, crs=municipalities_TN.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
multipoly_mun.to_crs(epsg=4326).plot(
column='COMUNE',
figsize=(15,15),
cmap="Set3",
edgecolor="k",
lw=0.2,
alpha=0.7,
ax=base
)
dolomities_TN_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.75,
lw=0.8,
)
<AxesSubplot:>
First, we create the Dolomiti area by dissolving the systems geometries.
# we add a column with the same value for each system in order to dissolve on this column
geodf_dolomities['territory']='dolomiti'
dolomiti = geodf_dolomities[['territory', 'geometry']]
overal_dolomiti = dolomiti.to_crs(epsg=4326).dissolve(by='territory')
Check the total area:
sum(geodf_dolomities['area'])
1418804775.9299965
Finnaly we build a function to obtain the percentage of Dolomiti territory in the involved municipalities:
def mun_systems_area(mun):
# get municipality GeoDataFrame
mun_geodf = municipalities[municipalities.COMUNE == mun]
# calculate Dolomiti's total area
system_geodf = geodf_dolomities
systems_area = sum(geodf_dolomities['area'])
# clip the system shape on the minicipality boundaries recalculating area
system_area_clipped = overal_dolomiti.to_crs(epsg=32632).clip(mun_geodf.to_crs(epsg=32632)).area
# calculate percentage
percentage_dolomiti = (system_area_clipped/systems_area)*100
print("'", mun, "'", " contains ", round(system_area_clipped.values[0]/10**6, 3), " km\u00b2 of Dolomities.", "and the ", round(percentage_dolomiti.values[0], 4), "% of the overall Dolomities territory", sep="")
return [mun, system_area_clipped.values[0], percentage_dolomiti.values[0]]
We add the results of the function to lists to then compose a Dataset. This Dataset will contain the minicipality's name, the Dolomiti area contained in its boundaries and its percentage over the total Dolomit area.
list_mun = []
list_area = []
list_percentage = []
for index, row in geo_dolomiti_TN_mun.iterrows():
temp = mun_systems_area(row.COMUNE)
list_mun.append(temp[0])
list_area.append(temp[1])
list_percentage.append(temp[2])
'Andalo' contains 0.036 km² of Dolomities.and the 0.0026% of the overall Dolomities territory 'Campitello di Fassa' contains 2.175 km² of Dolomities.and the 0.1533% of the overall Dolomities territory 'Campodenno' contains 5.442 km² of Dolomities.and the 0.3836% of the overall Dolomities territory 'Canazei' contains 7.163 km² of Dolomities.and the 0.5048% of the overall Dolomities territory 'Cavedago' contains 0.348 km² of Dolomities.and the 0.0245% of the overall Dolomities territory 'Imer' contains 0.189 km² of Dolomities.and the 0.0133% of the overall Dolomities territory 'Mazzin' contains 4.46 km² of Dolomities.and the 0.3144% of the overall Dolomities territory 'Mezzano' contains 2.874 km² of Dolomities.and the 0.2026% of the overall Dolomities territory 'Moena' contains 3.533 km² of Dolomities.and the 0.249% of the overall Dolomities territory 'Molveno' contains 14.443 km² of Dolomities.and the 1.018% of the overall Dolomities territory 'Predazzo' contains 7.994 km² of Dolomities.and the 0.5635% of the overall Dolomities territory 'Sagron Mis' contains 1.411 km² of Dolomities.and the 0.0995% of the overall Dolomities territory 'Soraga di Fassa' contains 0.334 km² of Dolomities.and the 0.0236% of the overall Dolomities territory 'Spormaggiore' contains 9.489 km² of Dolomities.and the 0.6688% of the overall Dolomities territory 'Sporminore' contains 2.989 km² of Dolomities.and the 0.2107% of the overall Dolomities territory 'Stenico' contains 8.044 km² of Dolomities.and the 0.567% of the overall Dolomities territory 'Comano Terme' contains 4.291 km² of Dolomities.and the 0.3024% of the overall Dolomities territory 'San Lorenzo Dorsino' contains 36.7 km² of Dolomities.and the 2.5867% of the overall Dolomities territory 'Primiero San Martino di Castrozza' contains 41.322 km² of Dolomities.and the 2.9124% of the overall Dolomities territory 'Tre Ville' contains 17.531 km² of Dolomities.and the 1.2356% of the overall Dolomities territory 'Ville d'Anaunia' contains 12.04 km² of Dolomities.and the 0.8486% of the overall Dolomities territory 'San Giovanni di Fassa' contains 24.812 km² of Dolomities.and the 1.7488% of the overall Dolomities territory
df_mun_TN = pd.DataFrame(list(zip(list_mun, list_area, list_percentage)),
columns =['municipality', 'Dolomiti_area', 'percentage_over_total_Dolimiti_area'])
sorted_df = df_mun_TN.sort_values(by=['Dolomiti_area'], ascending=False)
sorted_df.head(5)
| municipality | Dolomiti_area | percentage_over_total_Dolimiti_area | |
|---|---|---|---|
| 18 | Primiero San Martino di Castrozza | 4.132196e+07 | 2.912448 |
| 17 | San Lorenzo Dorsino | 3.670043e+07 | 2.586715 |
| 21 | San Giovanni di Fassa | 2.481193e+07 | 1.748791 |
| 19 | Tre Ville | 1.753142e+07 | 1.235647 |
| 9 | Molveno | 1.444332e+07 | 1.017992 |
We also add the province column to distinguish them from upcoming municipalities.
sorted_df["province"] = 'Trento'
highest_dolomiti_area_mun = sorted_df[sorted_df.Dolomiti_area == sorted_df.Dolomiti_area.max()]
primiero = municipalities[municipalities.COMUNE == highest_dolomiti_area_mun.municipality.values[0]]
primiero
| COD_REG | COD_PROV | PRO_COM_T | COMUNE | Shape_Area | geometry | |
|---|---|---|---|---|---|---|
| 3027 | 4 | 22 | 022245 | Primiero San Martino di Castrozza | 1.996259e+08 | POLYGON ((11.77169 46.35838, 11.77438 46.35824... |
base = municipalities_TN.plot(
column='COD_PROV',
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.5)
ctx.add_basemap(base, crs=municipalities_TN.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
primiero.to_crs(epsg=4326).plot(
figsize=(15,15),
color="orange",
edgecolor="k",
lw=0.6,
alpha=0.9,
ax=base
)
dolomities_TN_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.75,
lw=0.1,
)
<AxesSubplot:>
Primiero San Martino di Castrozza is the municipality with the highest area of Domolimiti in the province of Trento.
Let's check if areas and percentage of the municipalities sum up to that of the province of Trento:
round(dolomiti_TN_area, -2) == round(sum(sorted_df.Dolomiti_area), -2)
True
round(persentage_dolomiti_TN, -2) == round(sum(sorted_df.percentage_over_total_Dolimiti_area), -2)
True
Province of Bolzano is the other procince of Trentino-Alto Adige, which represents the region with the largest area of Dolomiti mountains.
province_BZ = provinces[provinces.DEN_PROV == 'Bolzano']
province_BZ
| COD_REG | COD_PROV | DEN_PROV | Shape_Area | geometry | |
|---|---|---|---|---|---|
| 20 | 4 | 21 | Bolzano | 7.399378e+09 | POLYGON ((12.20511 47.08653, 12.20668 47.08627... |
province_BZ.plot()
<AxesSubplot:>
Extract Dolomiti systems of province of Bolzano:
dolomities_BZ = geodf_dolomities_provices[geodf_dolomities_provices.DEN_PROV == 'Bolzano']
dolomities_BZ
| Name | Description | geometry | area | COD_REG_ | COD_PROV | DEN_PROV | Shape_Area_ | DEN_REG | Shape_Area_reg | |
|---|---|---|---|---|---|---|---|---|---|---|
| 4 | Sistema 5 - Dolomiti settentrionali | Esplora il Sistema 5 Dolomiti settentrionali s... | MULTIPOLYGON Z (((12.16274 46.57915 0.00000, 1... | 5.360157e+08 | 4 | 21 | Bolzano | 7.399378e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 5 | Sistema 6 - Puez-Odle | Esplora il Sistema 6 Puez-Odle su<br>http://ww... | POLYGON Z ((11.83423 46.66379 0.00000, 11.8333... | 7.930332e+07 | 4 | 21 | Bolzano | 7.399378e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 6 | Sistema 7 - Sciliar-Catinaccio, Latemar | Esplora il Sistema 7 Sciliar-Catinaccio, Latem... | POLYGON Z ((11.51976 46.48659 0.00000, 11.5202... | 9.302092e+07 | 4 | 21 | Bolzano | 7.399378e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 7 | Sistema 8 - Bletterbach | Esplora il Sistema 8 Bletterbach su<br>http://... | POLYGON Z ((11.41907 46.36664 0.00000, 11.4190... | 2.716007e+06 | 4 | 21 | Bolzano | 7.399378e+09 | Trentino-Alto Adige | 1.360755e+10 |
base = province_BZ.to_crs(epsg=4326).plot(
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, zoom=12, crs=province_BZ.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
dolomities_BZ.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.70,
lw=0.1,
)
<AxesSubplot:>
dolomities_BZ_clipped = dolomities_BZ.clip(province_BZ)
base = province_BZ.to_crs(epsg=4326).plot(
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, zoom=12, crs=province_BZ.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
dolomities_BZ_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.70,
lw=0.1,
)
<AxesSubplot:>
dolomities_BZ_clipped_areas = dolomities_BZ_clipped.to_crs(epsg=32632)
dolomities_BZ_clipped_areas["area"] = dolomities_BZ_clipped_areas['geometry'].area
dolomities_BZ_clipped_areas
| Name | Description | geometry | area | COD_REG_ | COD_PROV | DEN_PROV | Shape_Area_ | DEN_REG | Shape_Area_reg | |
|---|---|---|---|---|---|---|---|---|---|---|
| 7 | Sistema 8 - Bletterbach | Esplora il Sistema 8 Bletterbach su<br>http://... | POLYGON ((686070.959 5137628.513, 686071.420 5... | 2.716007e+06 | 4 | 21 | Bolzano | 7.399378e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 6 | Sistema 7 - Sciliar-Catinaccio, Latemar | Esplora il Sistema 7 Sciliar-Catinaccio, Latem... | MULTIPOLYGON (((701176.461 5144473.670, 701115... | 5.403707e+07 | 4 | 21 | Bolzano | 7.399378e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 4 | Sistema 5 - Dolomiti settentrionali | Esplora il Sistema 5 Dolomiti settentrionali s... | MULTIPOLYGON (((747258.034 5167424.443, 747224... | 3.031830e+08 | 4 | 21 | Bolzano | 7.399378e+09 | Trentino-Alto Adige | 1.360755e+10 |
| 5 | Sistema 6 - Puez-Odle | Esplora il Sistema 6 Puez-Odle su<br>http://ww... | POLYGON ((716892.208 5171663.164, 716967.716 5... | 7.930332e+07 | 4 | 21 | Bolzano | 7.399378e+09 | Trentino-Alto Adige | 1.360755e+10 |
Sum the Dolomiti's areas in province of Bolzano:
dolomiti_BZ_area = sum(dolomities_BZ_clipped_areas.area)
print(round(dolomiti_BZ_area/10**6, 2), " km\u00b2 of Dolomiti are in province of Bolzano", sep="")
439.24 km² of Dolomiti are in province of Bolzano
The province of Bolzano seems to include much more Dolomiti's territory than the province of Trento.
With the overlay difference prlot it is possible to notice the higher impact on the province's territory:
dolomiti_BZ_overlay = province_BZ.to_crs(epsg=32632).overlay(dolomities_BZ_clipped.to_crs(epsg=32632), how="difference")
base = province_BZ.to_crs(epsg=4326).plot(
figsize=(15,15),
color= "white",
edgecolor="k",
lw=0.7,
alpha=0.7
)
dolomiti_BZ_overlay.to_crs(epsg=4326).plot(ax=base)
<AxesSubplot:>
dolomiti_BZ_area = sum(dolomities_BZ_clipped_areas.area)
overal_dolomiti_area = sum(geodf_dolomities['area'])
persentage_dolomiti_BZ = (dolomiti_BZ_area/overal_dolomiti_area)*100
print("Province of Trento contains the ", round(persentage_dolomiti_BZ, 2), "% of the Dolomiti's terriotory", sep="")
Province of Trento contains the 30.96% of the Dolomiti's terriotory
As previously assumed, the province contains twice as much Dolomiti's peaks as the previous one.
We can use the previous defined function:
for index, row in dolomities_BZ.iterrows():
province_systems_percentage(row.DEN_PROV, row.Name)
56.56% of the 'Sistema 5 - Dolomiti settentrionali' is in province of Bolzano 100.0% of the 'Sistema 6 - Puez-Odle' is in province of Bolzano 58.09% of the 'Sistema 7 - Sciliar-Catinaccio, Latemar' is in province of Bolzano 100.0% of the 'Sistema 8 - Bletterbach' is in province of Bolzano
The province contains two systems in its totality and more than half of two other systems. Province of Bolzano wins over province of Trento.
Get municipalities of province of Bolzano:
code_BZ = province_BZ.COD_PROV.values[0]
code_BZ
21
municipalities_BZ = municipalities[municipalities.COD_PROV == code_BZ]
municipalities_BZ.head(4)
| COD_REG | COD_PROV | PRO_COM_T | COMUNE | Shape_Area | geometry | |
|---|---|---|---|---|---|---|
| 2755 | 4 | 21 | 021001 | Aldino | 6.276794e+07 | POLYGON ((11.33993 46.40130, 11.35272 46.39816... |
| 2756 | 4 | 21 | 021002 | Andriano | 5.290305e+06 | POLYGON ((11.24288 46.52772, 11.24392 46.52792... |
| 2757 | 4 | 21 | 021003 | Anterivo | 1.117156e+07 | POLYGON ((11.34675 46.29452, 11.35893 46.29612... |
| 2758 | 4 | 21 | 021004 | Appiano sulla strada del vino | 5.817631e+07 | POLYGON ((11.20784 46.52054, 11.21153 46.52043... |
municipalities_BZ.plot()
<AxesSubplot:>
geo_dolomiti_BZ_mun = municipalities_BZ[municipalities_BZ.COMUNE.isin(dolomiti_mun)]
print("Municipalities in province of Bolzano that contain Dolomiti: ")
for i in geo_dolomiti_BZ_mun.COMUNE.unique():
print("-", i, end="\n")
Municipalities in province of Bolzano that contain Dolomiti: - Aldino - Badia - Braies - Castelrotto - Corvara in Badia - Dobbiaco - Fiè allo Sciliar - Funes - Marebbe - Nova Levante - Nova Ponente - Ortisei - San Candido - San Martino in Badia - Santa Cristina Valgardena - Selva di Val Gardena - Sesto - Tires - Valdaora - La Valle
base = municipalities_BZ.plot(
column='COD_PROV',
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.6,
alpha=0.5)
ctx.add_basemap(base, crs=municipalities_BZ.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
geo_dolomiti_BZ_mun.to_crs(epsg=4326).plot(
column='COMUNE',
figsize=(15,15),
cmap="Paired",
edgecolor="k",
lw=0.2,
alpha=0.4,
ax=base
)
dolomities_BZ_clipped.to_crs(epsg=4326).plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.85,
lw=1,
)
<AxesSubplot:>
We use the previous defined function to calculate municipalities Dolomiti's areas and percentage on the overall Dolomiti's terriotry.
list_mun_BZ = []
list_area_BZ = []
list_percentage_BZ = []
for index, row in geo_dolomiti_BZ_mun.iterrows():
temp = mun_systems_area(row.COMUNE)
list_mun_BZ.append(temp[0])
list_area_BZ.append(temp[1])
list_percentage_BZ.append(temp[2])
'Aldino' contains 2.716 km² of Dolomities.and the 0.1914% of the overall Dolomities territory 'Badia' contains 22.984 km² of Dolomities.and the 1.62% of the overall Dolomities territory 'Braies' contains 54.775 km² of Dolomities.and the 3.8606% of the overall Dolomities territory 'Castelrotto' contains 9.882 km² of Dolomities.and the 0.6965% of the overall Dolomities territory 'Corvara in Badia' contains 5.279 km² of Dolomities.and the 0.372% of the overall Dolomities territory 'Dobbiaco' contains 59.918 km² of Dolomities.and the 4.2231% of the overall Dolomities territory 'Fiè allo Sciliar' contains 10.91 km² of Dolomities.and the 0.7689% of the overall Dolomities territory 'Funes' contains 15.7 km² of Dolomities.and the 1.1066% of the overall Dolomities territory 'Marebbe' contains 102.101 km² of Dolomities.and the 7.1963% of the overall Dolomities territory 'Nova Levante' contains 6.319 km² of Dolomities.and the 0.4454% of the overall Dolomities territory 'Nova Ponente' contains 4.281 km² of Dolomities.and the 0.3018% of the overall Dolomities territory 'Ortisei' contains 0.317 km² of Dolomities.and the 0.0224% of the overall Dolomities territory 'San Candido' contains 28.486 km² of Dolomities.and the 2.0078% of the overall Dolomities territory 'San Martino in Badia' contains 18.621 km² of Dolomities.and the 1.3125% of the overall Dolomities territory 'Santa Cristina Valgardena' contains 8.183 km² of Dolomities.and the 0.5768% of the overall Dolomities territory 'Selva di Val Gardena' contains 22.321 km² of Dolomities.and the 1.5732% of the overall Dolomities territory 'Sesto' contains 29.706 km² of Dolomities.and the 2.0937% of the overall Dolomities territory 'Tires' contains 22.645 km² of Dolomities.and the 1.596% of the overall Dolomities territory 'Valdaora' contains 6.246 km² of Dolomities.and the 0.4403% of the overall Dolomities territory 'La Valle' contains 7.848 km² of Dolomities.and the 0.5531% of the overall Dolomities territory
df_mun_BZ = pd.DataFrame(list(zip(list_mun_BZ, list_area_BZ, list_percentage_BZ)),
columns =['municipality', 'Dolomiti_area', 'percentage_over_total_Dolimiti_area'])
sorted_df_BZ = df_mun_BZ.sort_values(by=['Dolomiti_area'], ascending=False)
sorted_df_BZ.head(5)
| municipality | Dolomiti_area | percentage_over_total_Dolimiti_area | |
|---|---|---|---|
| 8 | Marebbe | 1.021015e+08 | 7.196300 |
| 5 | Dobbiaco | 5.991817e+07 | 4.223144 |
| 2 | Braies | 5.477485e+07 | 3.860633 |
| 16 | Sesto | 2.970603e+07 | 2.093736 |
| 12 | San Candido | 2.848610e+07 | 2.007753 |
sorted_df_BZ["province"] = 'Bolzano'
Some municipalities have quite high percentages being only individual municipalities.
Let's add the municipalities to the overall municipalities rankig list:
dolomiti_municipality_rank = sorted_df.append(pd.DataFrame(data = sorted_df_BZ), ignore_index=True)
dolomiti_municipality_rank = dolomiti_municipality_rank.sort_values(by=['Dolomiti_area'], ascending=False)
dolomiti_municipality_rank.head(5)
| municipality | Dolomiti_area | percentage_over_total_Dolimiti_area | province | |
|---|---|---|---|---|
| 22 | Marebbe | 1.021015e+08 | 7.196300 | Bolzano |
| 23 | Dobbiaco | 5.991817e+07 | 4.223144 | Bolzano |
| 24 | Braies | 5.477485e+07 | 3.860633 | Bolzano |
| 0 | Primiero San Martino di Castrozza | 4.132196e+07 | 2.912448 | Trento |
| 1 | San Lorenzo Dorsino | 3.670043e+07 | 2.586715 | Trento |
The podium is now entirely composed by municipalities in the province of Bolzano.
highest_dolomiti_area_mun = dolomiti_municipality_rank[dolomiti_municipality_rank.Dolomiti_area == dolomiti_municipality_rank.Dolomiti_area.max()]
marebbe = municipalities[municipalities.COMUNE == highest_dolomiti_area_mun.municipality.values[0]]
marebbe
| COD_REG | COD_PROV | PRO_COM_T | COMUNE | Shape_Area | geometry | |
|---|---|---|---|---|---|---|
| 2801 | 4 | 21 | 021047 | Marebbe | 1.589979e+08 | POLYGON ((11.94437 46.74552, 11.95893 46.73875... |
base = municipalities_BZ.plot(
column='COD_PROV',
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.5)
ctx.add_basemap(base, crs=municipalities_BZ.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
marebbe.to_crs(epsg=4326).plot(
figsize=(15,15),
color="orange",
edgecolor="k",
lw=0.6,
alpha=0.9,
ax=base
)
dolomities_BZ_clipped.to_crs(epsg=4326).plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.75,
lw=0.1,
)
<AxesSubplot:>
Marebbe is the municipality with the highest area of Domolimiti in the province of Bolzano. Let's check if areas and percentage of the municipalities sum up to that of the province:
round(dolomiti_BZ_area, -2) == round(sum(sorted_df_BZ.Dolomiti_area), -2)
True
round(persentage_dolomiti_BZ, -2) == round(sum(sorted_df_BZ.percentage_over_total_Dolimiti_area), -2)
True
Province of Belluno is the only province in Veneto that contains portion of Dolomiti's territory. Nevertheless, this province makes Veneto the second region for Dolomite area.
province_BL = provinces[provinces.DEN_PROV == 'Belluno']
province_BL
| COD_REG | COD_PROV | DEN_PROV | Shape_Area | geometry | |
|---|---|---|---|---|---|
| 24 | 5 | 25 | Belluno | 3.609841e+09 | POLYGON ((12.50591 46.67839, 12.50603 46.67803... |
province_BL.plot()
<AxesSubplot:>
dolomities_BL = geodf_dolomities_provices[geodf_dolomities_provices.DEN_PROV == 'Belluno']
dolomities_BL
| Name | Description | geometry | area | COD_REG_ | COD_PROV | DEN_PROV | Shape_Area_ | DEN_REG | Shape_Area_reg | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Sistema 1 - Pelmo, Croda da Lago | Esplora il Sistema 1 Pelmo, Croda da Lago su<b... | POLYGON Z ((12.12142 46.40488 0.00000, 12.1214... | 4.315303e+07 | 5 | 25 | Belluno | 3.609841e+09 | Veneto | 1.834355e+10 |
| 1 | Sistema 2 - Marmolada | Esplora il Sistema 2 Marmolada su<br>http://ww... | POLYGON Z ((11.82319 46.45296 0.00000, 11.8221... | 2.205786e+07 | 5 | 25 | Belluno | 3.609841e+09 | Veneto | 1.834355e+10 |
| 2 | Sistema 3 - Pale di San Martino, San Lucano, D... | Esplora il Sistema 3 Pale di San Martino, San ... | POLYGON Z ((11.98683 46.31720 0.00000, 11.9880... | 3.165677e+08 | 5 | 25 | Belluno | 3.609841e+09 | Veneto | 1.834355e+10 |
| 3 | Sistema 4 - Dolomiti friulane e d'Oltre Piave | Esplora il Sistema 4 Dolomiti friulane e d'Olt... | POLYGON Z ((12.51205 46.42487 0.00000, 12.5120... | 2.146157e+08 | 5 | 25 | Belluno | 3.609841e+09 | Veneto | 1.834355e+10 |
| 4 | Sistema 5 - Dolomiti settentrionali | Esplora il Sistema 5 Dolomiti settentrionali s... | MULTIPOLYGON Z (((12.16274 46.57915 0.00000, 1... | 5.360157e+08 | 5 | 25 | Belluno | 3.609841e+09 | Veneto | 1.834355e+10 |
print(province_BL.DEN_PROV.values[0], ' contains ', len(dolomities_BL.Name.unique()), " Dolomiti systems:", sep="")
for i in dolomities_BL.Name.unique():
print("-", i, end="\n")
Belluno contains 5 Dolomiti systems: - Sistema 1 - Pelmo, Croda da Lago - Sistema 2 - Marmolada - Sistema 3 - Pale di San Martino, San Lucano, Dolomiti Bellunesi, Vette Feltrine - Sistema 4 - Dolomiti friulane e d'Oltre Piave - Sistema 5 - Dolomiti settentrionali
base = province_BL.to_crs(epsg=4326).plot(
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, zoom=12, crs=province_BL.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
dolomities_BL.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.70,
lw=0.1,
)
<AxesSubplot:>
dolomities_BL_clipped = dolomities_BL.clip(province_BL)
base = province_BL.to_crs(epsg=4326).plot(
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, zoom=12, crs=province_BL.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
dolomities_BL_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.70,
lw=0.1,
)
<AxesSubplot:>
dolomities_BL_clipped_areas= dolomities_BL_clipped.to_crs(epsg=32632)
dolomities_BL_clipped_areas["area"] = dolomities_BL_clipped_areas['geometry'].area
Sum the Dolomiti's areas in province of Belluno:
dolomiti_BL_area = sum(dolomities_BL_clipped_areas.area)
print(round(dolomiti_BL_area/10**6, 2), " km\u00b2 of Dolomiti are in province of Trento", sep="")
584.6 km² of Dolomiti are in province of Trento
dolomiti_BL_overlay = province_BL.to_crs(epsg=32632).overlay(dolomities_BL_clipped.to_crs(epsg=32632), how="difference")
base = province_BL.to_crs(epsg=4326).plot(
figsize=(15,15),
color= "white",
edgecolor="k",
lw=0.7,
alpha=0.7
)
dolomiti_BL_overlay.to_crs(epsg=4326).plot(ax=base)
<AxesSubplot:>
We can see much more impact on the province territory with respect to the previous provinces.
dolomiti_BL_area = sum(dolomities_BL_clipped_areas.area)
overal_dolomiti_area = sum(geodf_dolomities['area'])
persentage_dolomiti_BL = (dolomiti_BL_area/overal_dolomiti_area)*100
print("Province of Belluno contains the ", round(persentage_dolomiti_BL, 2), "% of the Dolomiti's terriotory", sep="")
Province of Belluno contains the 41.2% of the Dolomiti's terriotory
The province of Belluno contains 10% more Dolomiti's territory than Bolzano.
for index, row in dolomities_BL.iterrows():
province_systems_percentage(row.DEN_PROV, row.Name)
100.0% of the 'Sistema 1 - Pelmo, Croda da Lago' is in province of Belluno 47.92% of the 'Sistema 2 - Marmolada' is in province of Belluno 85.53% of the 'Sistema 3 - Pale di San Martino, San Lucano, Dolomiti Bellunesi, Vette Feltrine' is in province of Belluno 12.71% of the 'Sistema 4 - Dolomiti friulane e d'Oltre Piave' is in province of Belluno 43.44% of the 'Sistema 5 - Dolomiti settentrionali' is in province of Belluno
Province of Belluno contain the entire Sistema 1, higher percentages of Sistema 3, half of Sistema 2 and portions of Sistemna 5 and Sistema 4.
code_BL = province_BL.COD_PROV.values[0]
code_BL
25
municipalities_BL = municipalities[municipalities.COD_PROV == code_BL]
municipalities_BL.head(4)
| COD_REG | COD_PROV | PRO_COM_T | COMUNE | Shape_Area | geometry | |
|---|---|---|---|---|---|---|
| 3249 | 5 | 25 | 025001 | Agordo | 2.411324e+07 | POLYGON ((12.06082 46.33488, 12.07344 46.33107... |
| 3250 | 5 | 25 | 025002 | Alano di Piave | 3.648229e+07 | POLYGON ((11.89820 45.93666, 11.90215 45.93687... |
| 3251 | 5 | 25 | 025003 | Alleghe | 2.956926e+07 | POLYGON ((11.99511 46.44236, 12.00606 46.43859... |
| 3252 | 5 | 25 | 025004 | Arsiè | 6.469551e+07 | POLYGON ((11.73171 46.01990, 11.73636 46.02037... |
municipalities_BL.plot()
<AxesSubplot:>
geo_dolomiti_BL_mun = municipalities_BL[municipalities_BL.COMUNE.isin(dolomiti_mun)]
print("Municipalities in province of Trento that contain Dolomiti: ")
for i in geo_dolomiti_BL_mun.COMUNE.unique():
print("-", i, end="\n")
Municipalities in province of Trento that contain Dolomiti: - Agordo - Alleghe - Auronzo di Cadore - Belluno - Borca di Cadore - Calalzo di Cadore - Cencenighe Agordino - Cesiomaggiore - Colle Santa Lucia - Comelico Superiore - Cortina d'Ampezzo - Domegge di Cadore - Falcade - Feltre - Canale d'Agordo - Gosaldo - La Valle Agordina - Livinallongo del Col di Lana - Lorenzago di Cadore - Lozzo di Cadore - Ospitale di Cadore - Perarolo di Cadore - Pieve di Cadore - Rivamonte Agordino - Rocca Pietore - San Gregorio nelle Alpi - Santa Giustina - San Tomaso Agordino - San Vito di Cadore - Sedico - Selva di Cadore - Sospirolo - Sovramonte - Taibon Agordino - Vodo Cadore - Voltago Agordino - Zoppè di Cadore - Longarone - Val di Zoldo
We have a lot of involed municipalities here.
base = municipalities_BL.plot(
column='COD_PROV',
figsize=(15,15),
cmap="Pastel1",
edgecolor="#413A3B",
lw=0.6,
alpha=0.5)
ctx.add_basemap(base, crs=municipalities_BL.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
geo_dolomiti_BL_mun.to_crs(epsg=4326).plot(
column='COMUNE',
figsize=(15,15),
cmap="Paired",
edgecolor="k",
lw=0.2,
alpha=0.4,
ax=base
)
dolomities_BL_clipped.to_crs(epsg=4326).plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.85,
lw=1,
)
<AxesSubplot:>
Municipalities that include Dolomiti's territory also appear to be the majority of municipalities in the province of Belluno.
list_mun_BL = []
list_area_BL = []
list_percentage_BL = []
for index, row in geo_dolomiti_BL_mun.iterrows():
temp = mun_systems_area(row.COMUNE)
list_mun_BL.append(temp[0])
list_area_BL.append(temp[1])
list_percentage_BL.append(temp[2])
'Agordo' contains 2.783 km² of Dolomities.and the 0.1962% of the overall Dolomities territory 'Alleghe' contains 3.146 km² of Dolomities.and the 0.2217% of the overall Dolomities territory 'Auronzo di Cadore' contains 79.371 km² of Dolomities.and the 5.5942% of the overall Dolomities territory 'Belluno' contains 2.71 km² of Dolomities.and the 0.191% of the overall Dolomities territory 'Borca di Cadore' contains 9.347 km² of Dolomities.and the 0.6588% of the overall Dolomities territory 'Calalzo di Cadore' contains 18.463 km² of Dolomities.and the 1.3013% of the overall Dolomities territory 'Cencenighe Agordino' contains 1.683 km² of Dolomities.and the 0.1186% of the overall Dolomities territory 'Cesiomaggiore' contains 26.679 km² of Dolomities.and the 1.8804% of the overall Dolomities territory 'Colle Santa Lucia' contains 0.008 km² of Dolomities.and the 0.0006% of the overall Dolomities territory 'Comelico Superiore' contains 6.373 km² of Dolomities.and the 0.4492% of the overall Dolomities territory 'Cortina d'Ampezzo' contains 105.371 km² of Dolomities.and the 7.4267% of the overall Dolomities territory 'Domegge di Cadore' contains 8.596 km² of Dolomities.and the 0.6059% of the overall Dolomities territory 'Falcade' contains 3.908 km² of Dolomities.and the 0.2755% of the overall Dolomities territory 'Feltre' contains 8.203 km² of Dolomities.and the 0.5781% of the overall Dolomities territory 'Canale d'Agordo' contains 16.696 km² of Dolomities.and the 1.1767% of the overall Dolomities territory 'Gosaldo' contains 10.204 km² of Dolomities.and the 0.7192% of the overall Dolomities territory 'La Valle Agordina' contains 8.377 km² of Dolomities.and the 0.5904% of the overall Dolomities territory 'Livinallongo del Col di Lana' contains 3.298 km² of Dolomities.and the 0.2324% of the overall Dolomities territory 'Lorenzago di Cadore' contains 4.859 km² of Dolomities.and the 0.3425% of the overall Dolomities territory 'Lozzo di Cadore' contains 0.999 km² of Dolomities.and the 0.0704% of the overall Dolomities territory 'Ospitale di Cadore' contains 0.011 km² of Dolomities.and the 0.0008% of the overall Dolomities territory 'Perarolo di Cadore' contains 5.339 km² of Dolomities.and the 0.3763% of the overall Dolomities territory 'Pieve di Cadore' contains 14.489 km² of Dolomities.and the 1.0212% of the overall Dolomities territory 'Rivamonte Agordino' contains 4.392 km² of Dolomities.and the 0.3096% of the overall Dolomities territory 'Rocca Pietore' contains 10.261 km² of Dolomities.and the 0.7232% of the overall Dolomities territory 'San Gregorio nelle Alpi' contains 2.354 km² of Dolomities.and the 0.1659% of the overall Dolomities territory 'Santa Giustina' contains 1.036 km² of Dolomities.and the 0.073% of the overall Dolomities territory 'San Tomaso Agordino' contains 0.091 km² of Dolomities.and the 0.0064% of the overall Dolomities territory 'San Vito di Cadore' contains 23.139 km² of Dolomities.and the 1.6309% of the overall Dolomities territory 'Sedico' contains 42.879 km² of Dolomities.and the 3.0222% of the overall Dolomities territory 'Selva di Cadore' contains 7.736 km² of Dolomities.and the 0.5453% of the overall Dolomities territory 'Sospirolo' contains 20.799 km² of Dolomities.and the 1.466% of the overall Dolomities territory 'Sovramonte' contains 10.52 km² of Dolomities.and the 0.7415% of the overall Dolomities territory 'Taibon Agordino' contains 61.985 km² of Dolomities.and the 4.3688% of the overall Dolomities territory 'Vodo Cadore' contains 11.578 km² of Dolomities.and the 0.816% of the overall Dolomities territory 'Voltago Agordino' contains 2.968 km² of Dolomities.and the 0.2092% of the overall Dolomities territory 'Zoppè di Cadore' contains 0.736 km² of Dolomities.and the 0.0519% of the overall Dolomities territory 'Longarone' contains 16.679 km² of Dolomities.and the 1.1755% of the overall Dolomities territory 'Val di Zoldo' contains 26.531 km² of Dolomities.and the 1.8699% of the overall Dolomities territory
df_mun_BL = pd.DataFrame(list(zip(list_mun_BL, list_area_BL, list_percentage_BL)),
columns =['municipality', 'Dolomiti_area', 'percentage_over_total_Dolimiti_area'])
sorted_df_BL = df_mun_BL.sort_values(by=['Dolomiti_area'], ascending=False)
sorted_df_BL.head(5)
| municipality | Dolomiti_area | percentage_over_total_Dolimiti_area | |
|---|---|---|---|
| 10 | Cortina d'Ampezzo | 1.053706e+08 | 7.426714 |
| 2 | Auronzo di Cadore | 7.937064e+07 | 5.594190 |
| 33 | Taibon Agordino | 6.198461e+07 | 4.368790 |
| 29 | Sedico | 4.287910e+07 | 3.022198 |
| 7 | Cesiomaggiore | 2.667912e+07 | 1.880394 |
As in the province of Bolzano, we still have high percentages for individual municipalities.
highest_dolomiti_area_mun = sorted_df_BL[sorted_df_BL.Dolomiti_area == sorted_df_BL.Dolomiti_area.max()]
cortina = municipalities[municipalities.COMUNE == highest_dolomiti_area_mun.municipality.values[0]]
cortina
| COD_REG | COD_PROV | PRO_COM_T | COMUNE | Shape_Area | geometry | |
|---|---|---|---|---|---|---|
| 3263 | 5 | 25 | 025016 | Cortina d'Ampezzo | 2.534631e+08 | POLYGON ((12.07025 46.67491, 12.07473 46.67458... |
base = municipalities_BL.plot(
column='COD_PROV',
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.5)
ctx.add_basemap(base, crs=municipalities_BL.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
cortina.to_crs(epsg=4326).plot(
figsize=(15,15),
color="orange",
edgecolor="k",
lw=0.6,
alpha=0.9,
ax=base
)
dolomities_BL_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.75,
lw=0.1,
)
<AxesSubplot:>
Cortina d'Ampezzo is the municipality with the highest area of Domolomiti in the province of Belluno. Let's check if areas and percentage of the municipalities sum up to that of the province:
round(dolomiti_BL_area, -2) == round(sum(sorted_df_BL.Dolomiti_area), -2)
True
round(persentage_dolomiti_BL, -2) == round(sum(sorted_df_BL.percentage_over_total_Dolimiti_area), -2)
True
Is Cortina d'Ampezzo also highest than Marebbe and the other municipalities? Let's reformulate the ranking list.
sorted_df_BL["province"] = 'Belluno'
dolomiti_municipality_rank = dolomiti_municipality_rank.append(pd.DataFrame(data = sorted_df_BL), ignore_index=True)
dolomiti_municipality_rank = dolomiti_municipality_rank.sort_values(by=['Dolomiti_area'], ascending=False)
dolomiti_municipality_rank.head(5)
| municipality | Dolomiti_area | percentage_over_total_Dolimiti_area | province | |
|---|---|---|---|---|
| 42 | Cortina d'Ampezzo | 1.053706e+08 | 7.426714 | Belluno |
| 0 | Marebbe | 1.021015e+08 | 7.196300 | Bolzano |
| 43 | Auronzo di Cadore | 7.937064e+07 | 5.594190 | Belluno |
| 44 | Taibon Agordino | 6.198461e+07 | 4.368790 | Belluno |
| 1 | Dobbiaco | 5.991817e+07 | 4.223144 | Bolzano |
Yes, it is. Now the podium is mainly composed of municipalities in the province of Bellluno.
Province of Pordenone is in Friuli Venezia Giulia, and together with province of Udine made this region the last Dolomiti's region.
province_PN = provinces[provinces.DEN_PROV == 'Pordenone']
province_PN
| COD_REG | COD_PROV | DEN_PROV | Shape_Area | geometry | |
|---|---|---|---|---|---|
| 92 | 6 | 93 | Pordenone | 2.275459e+09 | POLYGON ((12.52110 46.38899, 12.52360 46.38049... |
province_PN.plot()
<AxesSubplot:>
dolomities_PN = geodf_dolomities_provices[geodf_dolomities_provices.DEN_PROV == 'Pordenone']
dolomities_PN
| Name | Description | geometry | area | COD_REG_ | COD_PROV | DEN_PROV | Shape_Area_ | DEN_REG | Shape_Area_reg | |
|---|---|---|---|---|---|---|---|---|---|---|
| 3 | Sistema 4 - Dolomiti friulane e d'Oltre Piave | Esplora il Sistema 4 Dolomiti friulane e d'Olt... | POLYGON Z ((12.51205 46.42487 0.00000, 12.5120... | 2.146157e+08 | 6 | 93 | Pordenone | 2.275459e+09 | Friuli Venezia Giulia | 7.933911e+09 |
print(province_PN.DEN_PROV.values[0], ' contains ', len(dolomities_PN.Name.unique()), " Dolomiti systems:", sep="")
for i in dolomities_PN.Name.unique():
print("-", i, end="\n")
Pordenone contains 1 Dolomiti systems: - Sistema 4 - Dolomiti friulane e d'Oltre Piave
base = province_PN.to_crs(epsg=4326).plot(
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, zoom=12, crs=province_PN.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
dolomities_PN.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.70,
lw=0.1,
)
<AxesSubplot:>
As we seen the only system in Friuli Venezia Giulia is Sistema 4 - Dolomiti friulane e d'Oltre Piave
dolomities_PN_clipped = dolomities_PN.clip(province_PN)
base = province_PN.to_crs(epsg=4326).plot(
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, zoom=12, crs=province_PN.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
dolomities_PN_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.70,
lw=0.1,
)
<AxesSubplot:>
dolomities_PN_clipped_areas = dolomities_PN_clipped.to_crs(epsg=32632)
dolomities_PN_clipped_areas["area"] = dolomities_PN_clipped_areas['geometry'].area
dolomities_PN_clipped_areas
| Name | Description | geometry | area | COD_REG_ | COD_PROV | DEN_PROV | Shape_Area_ | DEN_REG | Shape_Area_reg | |
|---|---|---|---|---|---|---|---|---|---|---|
| 3 | Sistema 4 - Dolomiti friulane e d'Oltre Piave | Esplora il Sistema 4 Dolomiti friulane e d'Olt... | POLYGON ((762929.905 5139138.528, 762933.346 5... | 1.519279e+08 | 6 | 93 | Pordenone | 2.275459e+09 | Friuli Venezia Giulia | 7.933911e+09 |
Sum the Dolomiti's areas in province of Pordenone:
dolomiti_PN_area = sum(dolomities_PN_clipped_areas.area)
print(round(dolomiti_PN_area/10**6, 2), " km\u00b2 of Dolomiti are in province of Pordenone", sep="")
151.93 km² of Dolomiti are in province of Pordenone
Since Friuli Venezia Giulia contains a low percentage of Dolomiti's territory, also province of Pordenone contains only a small area.
dolomiti_PN_area = sum(dolomities_PN_clipped_areas.area)
overal_dolomiti_area = sum(geodf_dolomities['area'])
persentage_dolomiti_PN = (dolomiti_PN_area/overal_dolomiti_area)*100
print("Province of Trento contains the ", round(persentage_dolomiti_PN, 2), "% of the Dolomiti's terriotory", sep="")
Province of Trento contains the 10.71% of the Dolomiti's terriotory
the province contains 4% fewer territories than the province of Trento (14%).
for index, row in dolomities_PN.iterrows():
province_systems_percentage(row.DEN_PROV, row.Name)
70.79% of the 'Sistema 4 - Dolomiti friulane e d'Oltre Piave' is in province of Pordenone
By the way province of Pordenone contains the majority of Sistema 4
code_PN = province_PN.COD_PROV.values[0]
code_PN
93
municipalities_PN = municipalities[municipalities.COD_PROV == code_PN]
municipalities_PN.head(4)
| COD_REG | COD_PROV | PRO_COM_T | COMUNE | Shape_Area | geometry | |
|---|---|---|---|---|---|---|
| 7101 | 6 | 93 | 093001 | Andreis | 2.732638e+07 | POLYGON ((12.60761 46.24313, 12.61041 46.24260... |
| 7102 | 6 | 93 | 093002 | Arba | 1.535937e+07 | POLYGON ((12.80817 46.17472, 12.80894 46.17257... |
| 7103 | 6 | 93 | 093004 | Aviano | 1.137879e+08 | POLYGON ((12.57556 46.03119, 12.57536 46.03177... |
| 7104 | 6 | 93 | 093005 | Azzano Decimo | 5.115717e+07 | POLYGON ((12.68656 45.92821, 12.68735 45.92826... |
municipalities_PN.plot()
<AxesSubplot:>
geo_dolomiti_PN_mun = municipalities_PN[municipalities_PN.COMUNE.isin(dolomiti_mun)]
print("Municipalities in province of Pordenone that contain Dolomiti: ")
for i in geo_dolomiti_PN_mun.COMUNE.unique():
print("-", i, end="\n")
Municipalities in province of Pordenone that contain Dolomiti: - Cimolais - Claut - Erto e Casso - Tramonti di Sopra
As expected only few municipalities contains Dolomiti's peaks.
base = municipalities_PN.plot(
column='COD_PROV',
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.6)
ctx.add_basemap(base, crs=municipalities_PN.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
geo_dolomiti_PN_mun.to_crs(epsg=4326).plot(
column='COMUNE',
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7,
ax=base
)
dolomities_PN_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.80,
lw=0.8,
)
<AxesSubplot:>
list_mun_PN = []
list_area_PN = []
list_percentage_PN = []
for index, row in geo_dolomiti_PN_mun.iterrows():
temp = mun_systems_area(row.COMUNE)
list_mun_PN.append(temp[0])
list_area_PN.append(temp[1])
list_percentage_PN.append(temp[2])
'Cimolais' contains 70.795 km² of Dolomities.and the 4.9898% of the overall Dolomities territory 'Claut' contains 63.226 km² of Dolomities.and the 4.4563% of the overall Dolomities territory 'Erto e Casso' contains 14.635 km² of Dolomities.and the 1.0315% of the overall Dolomities territory 'Tramonti di Sopra' contains 3.272 km² of Dolomities.and the 0.2306% of the overall Dolomities territory
df_mun_PN = pd.DataFrame(list(zip(list_mun_PN, list_area_PN, list_percentage_PN)),
columns =['municipality', 'Dolomiti_area', 'percentage_over_total_Dolimiti_area'])
sorted_df_PN = df_mun_PN.sort_values(by=['Dolomiti_area'], ascending=False)
sorted_df_PN
| municipality | Dolomiti_area | percentage_over_total_Dolimiti_area | |
|---|---|---|---|
| 0 | Cimolais | 7.079494e+07 | 4.989759 |
| 1 | Claut | 6.322577e+07 | 4.456270 |
| 2 | Erto e Casso | 1.463481e+07 | 1.031488 |
| 3 | Tramonti di Sopra | 3.272357e+06 | 0.230642 |
highest_dolomiti_area_mun_PN = sorted_df_PN[sorted_df_PN.Dolomiti_area == sorted_df_PN.Dolomiti_area.max()]
cimolais = municipalities[municipalities.COMUNE == highest_dolomiti_area_mun_PN.municipality.values[0]]
cimolais
| COD_REG | COD_PROV | PRO_COM_T | COMUNE | Shape_Area | geometry | |
|---|---|---|---|---|---|---|
| 7113 | 6 | 93 | 093014 | Cimolais | 100363518.1 | POLYGON ((12.50473 46.40423, 12.50815 46.40305... |
base = municipalities_PN.plot(
column='COD_PROV',
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.5)
ctx.add_basemap(base, crs=municipalities_PN.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
cimolais.to_crs(epsg=4326).plot(
figsize=(15,15),
color="orange",
edgecolor="k",
lw=0.6,
alpha=0.9,
ax=base
)
dolomities_PN_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.75,
lw=0.1,
)
<AxesSubplot:>
Cimolais is the municipality with the highest area of Domolomiti in the province of Pordenone.
Let's check if areas and percentage of the municipalities sum up to that of the province of Trento:
round(dolomiti_PN_area, -2) == round(sum(sorted_df_PN.Dolomiti_area), -2)
True
round(persentage_dolomiti_PN, -2) == round(sum(sorted_df_PN.percentage_over_total_Dolimiti_area), -2)
True
Add Pordenone municipalities to the other Dolomiti's municipalities:
sorted_df_PN["province"] = 'Pordenone'
dolomiti_municipality_rank = dolomiti_municipality_rank.append(pd.DataFrame(data = sorted_df_PN), ignore_index=True)
dolomiti_municipality_rank = dolomiti_municipality_rank.sort_values(by=['Dolomiti_area'], ascending=False)
dolomiti_municipality_rank
| municipality | Dolomiti_area | percentage_over_total_Dolimiti_area | province | |
|---|---|---|---|---|
| 0 | Cortina d'Ampezzo | 1.053706e+08 | 7.426714 | Belluno |
| 1 | Marebbe | 1.021015e+08 | 7.196300 | Bolzano |
| 2 | Auronzo di Cadore | 7.937064e+07 | 5.594190 | Belluno |
| 81 | Cimolais | 7.079494e+07 | 4.989759 | Pordenone |
| 82 | Claut | 6.322577e+07 | 4.456270 | Pordenone |
| ... | ... | ... | ... | ... |
| 76 | Imer | 1.894005e+05 | 0.013349 | Trento |
| 77 | San Tomaso Agordino | 9.145406e+04 | 0.006446 | Belluno |
| 78 | Andalo | 3.618142e+04 | 0.002550 | Trento |
| 79 | Ospitale di Cadore | 1.114393e+04 | 0.000785 | Belluno |
| 80 | Colle Santa Lucia | 8.043294e+03 | 0.000567 | Belluno |
85 rows × 4 columns
Municipalities of province od Pordenone cannot compete with those of the provinces of Bolzano and Belluno. Nevertheless, Cimolais and Claut are fourth and fifth in the global ranking.
The province of Udine is the other Dolomiti's province of Friuli Venezia Giulia.
province_UD = provinces[provinces.DEN_PROV == 'Udine']
province_UD
| COD_REG | COD_PROV | DEN_PROV | Shape_Area | geometry | |
|---|---|---|---|---|---|
| 29 | 6 | 30 | Udine | 4.969771e+09 | POLYGON ((12.76335 46.64757, 12.76549 46.64669... |
province_UD.plot()
<AxesSubplot:>
Extract Dolomiti systems of province of Udine:
dolomities_UD = geodf_dolomities_provices[geodf_dolomities_provices.DEN_PROV == 'Udine']
dolomities_UD
| Name | Description | geometry | area | COD_REG_ | COD_PROV | DEN_PROV | Shape_Area_ | DEN_REG | Shape_Area_reg | |
|---|---|---|---|---|---|---|---|---|---|---|
| 3 | Sistema 4 - Dolomiti friulane e d'Oltre Piave | Esplora il Sistema 4 Dolomiti friulane e d'Olt... | POLYGON Z ((12.51205 46.42487 0.00000, 12.5120... | 2.146157e+08 | 6 | 30 | Udine | 4.969771e+09 | Friuli Venezia Giulia | 7.933911e+09 |
As for the other province of Friuli Venezia Giulia, the province of Udine contains only Sistema 4 - Dolomiti friulane e d'Oltre Piave.
base = province_UD.to_crs(epsg=4326).plot(
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, zoom=12, crs=province_UD.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
dolomities_UD.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.70,
lw=0.1,
)
<AxesSubplot:>
dolomities_UD_clipped = dolomities_UD.clip(province_UD)
base = province_UD.to_crs(epsg=4326).plot(
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.7
)
ctx.add_basemap(base, zoom=12, crs=province_UD.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
dolomities_UD_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.70,
lw=0.1,
)
<AxesSubplot:>
dolomities_UD_clipped_areas= dolomities_UD_clipped.to_crs(epsg=32632)
dolomities_UD_clipped_areas["area"] = dolomities_UD_clipped_areas['geometry'].area/10**6 # for km^2
dolomities_UD_clipped_areas
| Name | Description | geometry | area | COD_REG_ | COD_PROV | DEN_PROV | Shape_Area_ | DEN_REG | Shape_Area_reg | |
|---|---|---|---|---|---|---|---|---|---|---|
| 3 | Sistema 4 - Dolomiti friulane e d'Oltre Piave | Esplora il Sistema 4 Dolomiti friulane e d'Olt... | POLYGON ((769649.774 5149335.876, 769631.633 5... | 35.419384 | 6 | 30 | Udine | 4.969771e+09 | Friuli Venezia Giulia | 7.933911e+09 |
Sum the Dolomiti's areas in province of Udine:
dolomiti_UD_area = sum(dolomities_UD_clipped_areas.area)
print(round(dolomiti_UD_area/10**6, 2), " km\u00b2 of Dolomiti are in province of Udine", sep="")
35.42 km² of Dolomiti are in province of Udine
As it is possible to see also from the previous plots, province of Udine contains a very small Dolomiti's area.
dolomiti_UD_area = sum(dolomities_UD_clipped_areas.area)
overal_dolomiti_area = sum(geodf_dolomities['area'])
persentage_dolomiti_UD = (dolomiti_UD_area/overal_dolomiti_area)*100
print("Province of Udine contains the ", round(persentage_dolomiti_UD, 2), "% of the Dolomiti's terriotory", sep="")
Province of Udine contains the 2.5% of the Dolomiti's terriotory
As expected, also the percentage is very low. And this made it the last province for the amount of Dolomiti's territory.
for index, row in dolomities_UD.iterrows():
province_systems_percentage(row.DEN_PROV, row.Name)
16.5% of the 'Sistema 4 - Dolomiti friulane e d'Oltre Piave' is in province of Udine
Province of Udine contains only a small parte of Sistema 4.
code_UD = province_UD.COD_PROV.values[0]
code_UD
30
municipalities_UD = municipalities[municipalities.COD_PROV == code_UD]
municipalities_UD.head(4)
| COD_REG | COD_PROV | PRO_COM_T | COMUNE | Shape_Area | geometry | |
|---|---|---|---|---|---|---|
| 3600 | 6 | 30 | 030001 | Aiello del Friuli | 1.295954e+07 | POLYGON ((13.37162 45.88693, 13.37192 45.88570... |
| 3601 | 6 | 30 | 030002 | Amaro | 3.330734e+07 | POLYGON ((13.10669 46.41845, 13.11435 46.41627... |
| 3602 | 6 | 30 | 030003 | Ampezzo | 7.330908e+07 | POLYGON ((12.77522 46.47898, 12.77537 46.47816... |
| 3603 | 6 | 30 | 030004 | Aquileia | 3.730129e+07 | POLYGON ((13.39107 45.79862, 13.39172 45.79726... |
municipalities_UD.plot()
<AxesSubplot:>
geo_dolomiti_UD_mun = municipalities_UD[municipalities_UD.COMUNE.isin(dolomiti_mun)]
print("Municipalities in province of Udine that contain Dolomiti: ")
for i in geo_dolomiti_UD_mun.COMUNE.unique():
print("-", i, end="\n")
Municipalities in province of Udine that contain Dolomiti: - Forni di Sopra - Forni di Sotto
Only two municipalities are involved here.
base = municipalities_UD.plot(
column='COD_PROV',
figsize=(15,15),
cmap="Pastel1",
edgecolor="#413A3B",
lw=0.6,
alpha=0.5)
ctx.add_basemap(base, crs=municipalities_UD.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
geo_dolomiti_UD_mun.to_crs(epsg=4326).plot(
column='COMUNE',
figsize=(15,15),
cmap="Paired",
edgecolor="k",
lw=0.2,
alpha=0.7,
ax=base
)
dolomities_UD_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.85,
lw=1,
)
<AxesSubplot:>
list_mun_UD = []
list_area_UD = []
list_percentage_UD = []
for index, row in geo_dolomiti_UD_mun.iterrows():
temp = mun_systems_area(row.COMUNE)
list_mun_UD.append(temp[0])
list_area_UD.append(temp[1])
list_percentage_UD.append(temp[2])
'Forni di Sopra' contains 24.53 km² of Dolomities.and the 1.7289% of the overall Dolomities territory 'Forni di Sotto' contains 10.889 km² of Dolomities.and the 0.7675% of the overall Dolomities territory
Of course also here the percentage are very low.
df_mun_UD = pd.DataFrame(list(zip(list_mun_UD, list_area_UD, list_percentage_UD)),
columns =['municipality', 'Dolomiti_area', 'percentage_over_total_Dolimiti_area'])
sorted_df_UD = df_mun_UD.sort_values(by=['Dolomiti_area'], ascending=False)
sorted_df_UD
| municipality | Dolomiti_area | percentage_over_total_Dolimiti_area | |
|---|---|---|---|
| 0 | Forni di Sopra | 2.452997e+07 | 1.728918 |
| 1 | Forni di Sotto | 1.088941e+07 | 0.767506 |
highest_dolomiti_area_mun_UD = sorted_df_UD[sorted_df_UD.Dolomiti_area == sorted_df_UD.Dolomiti_area.max()]
forni_di_sopra = municipalities[municipalities.COMUNE == highest_dolomiti_area_mun_UD.municipality.values[0]]
forni_di_sopra
| COD_REG | COD_PROV | PRO_COM_T | COMUNE | Shape_Area | geometry | |
|---|---|---|---|---|---|---|
| 3638 | 6 | 30 | 030041 | Forni di Sopra | 8.214593e+07 | POLYGON ((12.57608 46.47337, 12.57838 46.47358... |
base = municipalities_UD.plot(
column='COD_PROV',
figsize=(15,15),
cmap="Pastel1",
edgecolor="k",
lw=0.2,
alpha=0.5)
ctx.add_basemap(base, crs=municipalities_UD.crs.to_string(), source=ctx.providers.Stamen.TerrainBackground, alpha=0.7)
forni_di_sopra.to_crs(epsg=4326).plot(
figsize=(15,15),
color="orange",
edgecolor="k",
lw=0.6,
alpha=0.9,
ax=base
)
dolomities_UD_clipped.plot(
column='Name',
categorical=True,
legend=True,
ax=base,
edgecolor="k",
alpha=0.75,
lw=0.1,
)
<AxesSubplot:>
Forni di Sopra is the municipality with the highest area of Domolomiti in the province of Udine.
Let's check if areas and percentage of the municipalities sum up to that of the province of Udine:
round(dolomiti_UD_area, -2) == round(sum(sorted_df_UD.Dolomiti_area), -2)
True
round(persentage_dolomiti_UD, -2) == round(sum(sorted_df_UD.percentage_over_total_Dolimiti_area), -2)
True
Add the two municipalities to the other Dolomiti municipalities:
sorted_df_UD["province"] = 'Udine'
dolomiti_municipality_rank = dolomiti_municipality_rank.append(pd.DataFrame(data = sorted_df_UD), ignore_index=True)
dolomiti_municipality_rank = dolomiti_municipality_rank.sort_values(by=['Dolomiti_area'], ascending=False)
dolomiti_municipality_rank.head(5)
| municipality | Dolomiti_area | percentage_over_total_Dolimiti_area | province | |
|---|---|---|---|---|
| 0 | Cortina d'Ampezzo | 1.053706e+08 | 7.426714 | Belluno |
| 1 | Marebbe | 1.021015e+08 | 7.196300 | Bolzano |
| 2 | Auronzo di Cadore | 7.937064e+07 | 5.594190 | Belluno |
| 3 | Cimolais | 7.079494e+07 | 4.989759 | Pordenone |
| 4 | Claut | 6.322577e+07 | 4.456270 | Pordenone |
Clearly the podium remains unchanged. Let's see the position of procince of Udine municipalities:
dolomiti_municipality_rank[dolomiti_municipality_rank.province == 'Udine']
| municipality | Dolomiti_area | percentage_over_total_Dolimiti_area | province | |
|---|---|---|---|---|
| 85 | Forni di Sopra | 2.452997e+07 | 1.728918 | Udine |
| 86 | Forni di Sotto | 1.088941e+07 | 0.767506 | Udine |
They are 16th and 34th in the overal ranking list.
sum(dolomiti_municipality_rank.Dolomiti_area)/10**6
1418.8047759299952
sum(dolomiti_municipality_rank.percentage_over_total_Dolimiti_area)
99.99999999999996
rank_dolomiti_reg
| region | dolomiti_area_km | percentage_over_total_dolimiti_area | |
|---|---|---|---|
| 0 | Trentino-Alto Adige | 646.86 | 45.59 |
| 1 | Veneto | 584.60 | 41.20 |
| 2 | Friuli Venezia Giulia | 187.35 | 13.20 |
data = {'region': [province_TN.DEN_PROV.values[0], province_BZ.DEN_PROV.values[0], province_BL.DEN_PROV.values[0], province_PN.DEN_PROV.values[0], province_UD.DEN_PROV.values[0]],
'dolomiti_area_km': [round(dolomiti_TN_area/10**6, 2), round(dolomiti_BZ_area/10**6, 2), round(dolomiti_BL_area/10**6, 2), round(dolomiti_PN_area/10**6, 2), round(dolomiti_UD_area/10**6, 2)],
'percentage_over_total_dolimiti_area': [round(persentage_dolomiti_TN, 2), round(persentage_dolomiti_BZ, 2), round(persentage_dolomiti_BL, 2), round(persentage_dolomiti_PN, 2), round(persentage_dolomiti_UD, 2)]
}
provinces_rank = pd.DataFrame(data)
provinces_rank = provinces_rank.sort_values(by=['dolomiti_area_km'], ascending=False)
provinces_rank
| region | dolomiti_area_km | percentage_over_total_dolimiti_area | |
|---|---|---|---|
| 2 | Belluno | 584.60 | 41.20 |
| 1 | Bolzano | 439.24 | 30.96 |
| 0 | Trento | 207.62 | 14.63 |
| 3 | Pordenone | 151.93 | 10.71 |
| 4 | Udine | 35.42 | 2.50 |
pd.set_option("display.max_rows", None, "display.max_columns", None)
dolomiti_municipality_rank
| municipality | Dolomiti_area | percentage_over_total_Dolimiti_area | province | |
|---|---|---|---|---|
| 0 | Cortina d'Ampezzo | 1.053706e+08 | 7.426714 | Belluno |
| 1 | Marebbe | 1.021015e+08 | 7.196300 | Bolzano |
| 2 | Auronzo di Cadore | 7.937064e+07 | 5.594190 | Belluno |
| 3 | Cimolais | 7.079494e+07 | 4.989759 | Pordenone |
| 4 | Claut | 6.322577e+07 | 4.456270 | Pordenone |
| 5 | Taibon Agordino | 6.198461e+07 | 4.368790 | Belluno |
| 6 | Dobbiaco | 5.991817e+07 | 4.223144 | Bolzano |
| 7 | Braies | 5.477485e+07 | 3.860633 | Bolzano |
| 8 | Sedico | 4.287910e+07 | 3.022198 | Belluno |
| 9 | Primiero San Martino di Castrozza | 4.132196e+07 | 2.912448 | Trento |
| 10 | San Lorenzo Dorsino | 3.670043e+07 | 2.586715 | Trento |
| 11 | Sesto | 2.970603e+07 | 2.093736 | Bolzano |
| 12 | San Candido | 2.848610e+07 | 2.007753 | Bolzano |
| 13 | Cesiomaggiore | 2.667912e+07 | 1.880394 | Belluno |
| 14 | Val di Zoldo | 2.653083e+07 | 1.869942 | Belluno |
| 15 | San Giovanni di Fassa | 2.481193e+07 | 1.748791 | Trento |
| 85 | Forni di Sopra | 2.452997e+07 | 1.728918 | Udine |
| 16 | San Vito di Cadore | 2.313881e+07 | 1.630866 | Belluno |
| 17 | Badia | 2.298394e+07 | 1.619951 | Bolzano |
| 18 | Tires | 2.264476e+07 | 1.596044 | Bolzano |
| 19 | Selva di Val Gardena | 2.232101e+07 | 1.573226 | Bolzano |
| 20 | Sospirolo | 2.079918e+07 | 1.465965 | Belluno |
| 21 | San Martino in Badia | 1.862120e+07 | 1.312457 | Bolzano |
| 22 | Calalzo di Cadore | 1.846299e+07 | 1.301306 | Belluno |
| 23 | Tre Ville | 1.753142e+07 | 1.235647 | Trento |
| 24 | Canale d'Agordo | 1.669568e+07 | 1.176743 | Belluno |
| 25 | Longarone | 1.667863e+07 | 1.175541 | Belluno |
| 26 | Funes | 1.570032e+07 | 1.106588 | Bolzano |
| 27 | Erto e Casso | 1.463481e+07 | 1.031488 | Pordenone |
| 28 | Pieve di Cadore | 1.448860e+07 | 1.021184 | Belluno |
| 29 | Molveno | 1.444332e+07 | 1.017992 | Trento |
| 30 | Ville d'Anaunia | 1.204014e+07 | 0.848612 | Trento |
| 31 | Vodo Cadore | 1.157776e+07 | 0.816022 | Belluno |
| 32 | Fiè allo Sciliar | 1.090965e+07 | 0.768933 | Bolzano |
| 86 | Forni di Sotto | 1.088941e+07 | 0.767506 | Udine |
| 33 | Sovramonte | 1.052010e+07 | 0.741476 | Belluno |
| 34 | Rocca Pietore | 1.026093e+07 | 0.723210 | Belluno |
| 35 | Gosaldo | 1.020401e+07 | 0.719198 | Belluno |
| 36 | Castelrotto | 9.881987e+06 | 0.696501 | Bolzano |
| 37 | Spormaggiore | 9.489372e+06 | 0.668829 | Trento |
| 38 | Borca di Cadore | 9.346813e+06 | 0.658781 | Belluno |
| 39 | Domegge di Cadore | 8.595953e+06 | 0.605859 | Belluno |
| 40 | La Valle Agordina | 8.377147e+06 | 0.590437 | Belluno |
| 41 | Feltre | 8.202689e+06 | 0.578141 | Belluno |
| 42 | Santa Cristina Valgardena | 8.183138e+06 | 0.576763 | Bolzano |
| 43 | Stenico | 8.043980e+06 | 0.566955 | Trento |
| 44 | Predazzo | 7.994491e+06 | 0.563467 | Trento |
| 45 | La Valle | 7.847865e+06 | 0.553132 | Bolzano |
| 46 | Selva di Cadore | 7.736355e+06 | 0.545273 | Belluno |
| 47 | Canazei | 7.162718e+06 | 0.504842 | Trento |
| 48 | Comelico Superiore | 6.373115e+06 | 0.449189 | Belluno |
| 49 | Nova Levante | 6.319377e+06 | 0.445401 | Bolzano |
| 50 | Valdaora | 6.246483e+06 | 0.440264 | Bolzano |
| 51 | Campodenno | 5.441937e+06 | 0.383558 | Trento |
| 52 | Perarolo di Cadore | 5.338514e+06 | 0.376268 | Belluno |
| 53 | Corvara in Badia | 5.278604e+06 | 0.372046 | Bolzano |
| 54 | Lorenzago di Cadore | 4.859123e+06 | 0.342480 | Belluno |
| 55 | Mazzin | 4.460416e+06 | 0.314378 | Trento |
| 56 | Rivamonte Agordino | 4.392355e+06 | 0.309581 | Belluno |
| 57 | Comano Terme | 4.290584e+06 | 0.302408 | Trento |
| 58 | Nova Ponente | 4.281296e+06 | 0.301754 | Bolzano |
| 59 | Falcade | 3.908421e+06 | 0.275473 | Belluno |
| 60 | Moena | 3.532846e+06 | 0.249002 | Trento |
| 61 | Livinallongo del Col di Lana | 3.297680e+06 | 0.232427 | Belluno |
| 62 | Tramonti di Sopra | 3.272357e+06 | 0.230642 | Pordenone |
| 63 | Alleghe | 3.146113e+06 | 0.221744 | Belluno |
| 64 | Sporminore | 2.988795e+06 | 0.210656 | Trento |
| 65 | Voltago Agordino | 2.968125e+06 | 0.209199 | Belluno |
| 66 | Mezzano | 2.873953e+06 | 0.202562 | Trento |
| 67 | Agordo | 2.783137e+06 | 0.196161 | Belluno |
| 68 | Aldino | 2.716007e+06 | 0.191429 | Bolzano |
| 69 | Belluno | 2.709831e+06 | 0.190994 | Belluno |
| 70 | San Gregorio nelle Alpi | 2.353924e+06 | 0.165909 | Belluno |
| 71 | Campitello di Fassa | 2.175291e+06 | 0.153319 | Trento |
| 72 | Cencenighe Agordino | 1.682973e+06 | 0.118619 | Belluno |
| 73 | Sagron Mis | 1.411328e+06 | 0.099473 | Trento |
| 74 | Santa Giustina | 1.035951e+06 | 0.073016 | Belluno |
| 75 | Lozzo di Cadore | 9.988353e+05 | 0.070400 | Belluno |
| 76 | Zoppè di Cadore | 7.359387e+05 | 0.051870 | Belluno |
| 77 | Cavedago | 3.482208e+05 | 0.024543 | Trento |
| 78 | Soraga di Fassa | 3.342176e+05 | 0.023556 | Trento |
| 79 | Ortisei | 3.171401e+05 | 0.022353 | Bolzano |
| 80 | Imer | 1.894005e+05 | 0.013349 | Trento |
| 81 | San Tomaso Agordino | 9.145406e+04 | 0.006446 | Belluno |
| 82 | Andalo | 3.618142e+04 | 0.002550 | Trento |
| 83 | Ospitale di Cadore | 1.114393e+04 | 0.000785 | Belluno |
| 84 | Colle Santa Lucia | 8.043294e+03 | 0.000567 | Belluno |